export const getPreviousValue = (currentValue: string, changeValue: string,): string => {


    // 如果没有直接提供的上周期数据，尝试计算


    // 如果当前值或变化值为空，则无法计算
    if (currentValue === '-' || currentValue === '--' || currentValue === '暂无数据' ||
        changeValue === '-' || changeValue === '--' || changeValue === '暂无数据') {
        return '-'
    }

    try {
        // 处理有+/-的数值变化
        // 去除changeValue的 % 号
        let numericChange = parseFloat(changeValue.replace(/[+,]/g, '').replace('%', ''))
        // 去除changeValue的 ¥ 号
        let currentNumeric = parseFloat(currentValue.replace(/,/g, '').replace('¥', ''))
        // 当变化率为 -100%（表示从0增长到当前值）或接近-100%时，直接返回0
        if (numericChange <= -99.9) {
            return '0'
        }

        // 根据变化是正值还是负值来计算
        if (changeValue.includes('+')) {
            // 防止除以零的情况
            if (Math.abs(1 + (numericChange / 100)) < 0.0001) {
                return '0'
            }
            // 当前值 = 上期值 + 变化值，所以上期值 = 当前值 - 变化值
            return formatNumber(currentNumeric / (1 + (numericChange / 100)))
        } else if (changeValue.includes('-')) {
            // 防止除以零的情况
            if (Math.abs(1 + numericChange / 100) < 0.0001) {
                return '0'
            }
            // 当前值 = 上期值 - 变化值，所以上期值 = 当前值 + 变化值
            return formatNumber(currentNumeric / (1 + numericChange / 100))
        } else if (numericChange === 0 || currentNumeric === 0) {
            return String(currentNumeric)
        }

        return '-'  // 如果无法解析格式，返回占位符
    } catch (e) {
        // 计算出错，尝试返回原始值
        return currentValue
    }
}

// 格式化数字，保持与原数据一致的格式
const formatNumber = (num: number): string => {
    // 不保留小数位
    return Math.round(num).toLocaleString('zh-CN')
}